home *** CD-ROM | disk | FTP | other *** search
/ MacHack 2001 / MacHack 2001.toast / pc / The Hacks / Palm Finder 2 / Src / Vectors / vector.cpp < prev    next >
Encoding:
Text File  |  2001-06-23  |  862 b   |  76 lines

  1. // vector.cpp
  2.  
  3. #include "vector.h"
  4. #define NULL 0
  5.  
  6. //
  7. // constructor
  8. //
  9. vector::vector(vector** in_master) {
  10.     m_master = in_master;
  11.     m_next = NULL;
  12.     add();
  13. }
  14.  
  15. //
  16. // default constructor
  17. //
  18. vector::vector() {
  19.     m_master = NULL;
  20.     m_next = NULL;
  21. }
  22.  
  23. //
  24. // destructor
  25. //
  26. vector::~vector() {
  27.     remove();
  28. }
  29.  
  30. //
  31. // add()
  32. //
  33. void
  34. vector::add() {
  35.     this->m_next = NULL;
  36.     
  37.     if (m_master==NULL) return;
  38.     
  39.     vector* p = *m_master;
  40.     
  41.     if (p==NULL) {
  42.         *m_master = this;
  43.     } else {
  44.         while (p->m_next != NULL) {
  45.             p = p->m_next;
  46.         }
  47.         p->m_next = this;
  48.     }
  49. }
  50.  
  51. //
  52. // remove()
  53. //
  54. void
  55. vector::remove() {
  56.     vector* p; 
  57.     vector* next;
  58.     
  59.     next = this->m_next;
  60.     this->m_next = NULL;
  61.     
  62.     if (m_master==NULL) return;
  63.     p = *m_master;
  64.     
  65.     if (p==this) {
  66.         *m_master = next;
  67.     } else {
  68.         while (p!=NULL) {
  69.             if (p->m_next == this) {
  70.                 p->m_next = next;
  71.                 break;
  72.             }
  73.             p = p->m_next;
  74.         }
  75.     }
  76. }